]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
appMenu: Only show Open Windows, if there are at least 2 windows
authorLeleat <atule@pm.me>
Wed, 28 Apr 2021 23:09:50 +0000 (01:09 +0200)
committerLeleat <atule@pm.me>
Thu, 29 Apr 2021 10:22:38 +0000 (12:22 +0200)
It doesn't make sense to show the 'Open Windows' in the app menu,
if the app only has 1 open window to switch between. Hide the
window section in that case.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4199.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1827>

js/ui/panel.js

index cba32416a21d15619bd79b7ed2a53ef1eb9514e3..1474886ef04b51c2dc1baf4f1b8700bbe07769b9 100644 (file)
@@ -30,7 +30,8 @@ class AppMenu extends PopupMenu.PopupMenu {
         this._windowsChangedId = 0;
 
         /* Translators: This is the heading of a list of open windows */
-        this.addMenuItem(new PopupMenu.PopupSeparatorMenuItem(_("Open Windows")));
+        this._openWindowsHeader = new PopupMenu.PopupSeparatorMenuItem(_('Open Windows'));
+        this.addMenuItem(this._openWindowsHeader);
 
         this._windowSection = new PopupMenu.PopupMenuSection();
         this.addMenuItem(this._windowSection);
@@ -118,11 +119,17 @@ class AppMenu extends PopupMenu.PopupMenu {
 
     _updateWindowsSection() {
         this._windowSection.removeAll();
+        this._openWindowsHeader.hide();
 
         if (!this._app)
             return;
 
         let windows = this._app.get_windows();
+        if (windows.length < 2)
+            return;
+
+        this._openWindowsHeader.show();
+
         windows.forEach(window => {
             let title = window.title || this._app.get_name();
             let item = this._windowSection.addAction(title, event => {